API ์๋ช ์ฃผ๊ธฐ์ ์ค๊ณ, ๊ฐ๋ฐ, ๋ฐฐํฌ, ๊ด๋ฆฌ, ํ๊ธฐ๊น์ง ๋ชจ๋ ๋จ๊ณ๋ฅผ ๋ค๋ฃจ๋ ์๋ฒฝ ๊ฐ์ด๋. ์ฑ๊ณต์ ์ธ API ๊ตฌ์ถ ๋ฐ ์ ์ง ๊ด๋ฆฌ๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์์๋ณด์ธ์.
API ์๋ช ์ฃผ๊ธฐ: ์ค๊ณ๋ถํฐ ํ๊ธฐ๊น์ง - ์ข ํฉ ๊ฐ์ด๋
API(์ ํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค)๋ ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ค์ถ๊ฐ ๋์์ต๋๋ค. API๋ ์๋ก ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ , ์์คํ , ์ฅ์น ๊ฐ์ ์ํํ ํต์ ๊ณผ ๋ฐ์ดํฐ ๊ตํ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ์ ์ฒด ์๋ช ์ฃผ๊ธฐ์ ๊ฑธ์ณ API๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ ์ฑ๊ณต๊ณผ ์ฅ๊ธฐ์ ์ธ ์ ์ง๋ณด์์ฑ์ ์ํด ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ด ์ข ํฉ ๊ฐ์ด๋์์๋ API ์๋ช ์ฃผ๊ธฐ์ ๊ฐ ๋จ๊ณ๋ฅผ ํ์ํ๋ฉฐ, ๊ฒฌ๊ณ ํ๊ณ ์์ ํ๋ฉฐ ํ์ฅ ๊ฐ๋ฅํ API๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ํต์ฐฐ๋ ฅ๊ณผ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ ๊ณตํฉ๋๋ค.
API ์๋ช ์ฃผ๊ธฐ๋ ๋ฌด์์ธ๊ฐ?
API ์๋ช ์ฃผ๊ธฐ๋ API์ ์ด๊ธฐ ๊ตฌ์๊ณผ ์ค๊ณ๋ถํฐ ์ต์ข ํ๊ธฐ๊น์ง ๋ชจ๋ ๋จ๊ณ๋ฅผ ํฌํจํฉ๋๋ค. ์ด๋ ๊ณํ, ๊ฐ๋ฐ, ํ ์คํธ, ๋ฐฐํฌ, ๊ด๋ฆฌ, ๋ชจ๋ํฐ๋ง, ๊ทธ๋ฆฌ๊ณ ์ต์ข ์ ์ธ ์ฌ์ฉ ์ค๋จ์ ํฌํจํ๋ ์ง์์ ์ธ ํ๋ก์ธ์ค์ ๋๋ค. ์ ์ ์๋ API ์๋ช ์ฃผ๊ธฐ๋ API๊ฐ ๋น์ฆ๋์ค ์๊ตฌ์ฌํญ์ ์ถฉ์กฑํ๊ณ , ์ ๊ณ ํ์ค์ ์ค์ํ๋ฉฐ, ์์ ํ๊ณ ๋์ ์ฑ๋ฅ์ ์ ์งํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
API ์๋ช ์ฃผ๊ธฐ์ ์ฃผ์ ๋จ๊ณ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ค๊ณ: API์ ๋ชฉ์ , ๊ธฐ๋ฅ, ๊ตฌ์กฐ๋ฅผ ์ ์ํฉ๋๋ค.
- ๊ฐ๋ฐ: ์ค๊ณ ๋ช ์ธ์ ๋ฐ๋ผ API๋ฅผ ๊ตฌ์ถํฉ๋๋ค.
- ํ ์คํธ: API๊ฐ ์ ํํ๊ณ , ์์ ํ๋ฉฐ, ์ ๋ขฐ์ฑ ์๊ฒ ์๋ํ๋์ง ํ์ธํฉ๋๋ค.
- ๋ฐฐํฌ: ๊ฐ๋ฐ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ์ฉํ ์ ์๋๋ก API๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๊ด๋ฆฌ: ์ฑ๋ฅ์ ๋ชจ๋ํฐ๋งํ๊ณ , ์ ๊ทผ์ ๊ด๋ฆฌํ๋ฉฐ, ๋ณด์ ์ ์ฑ ์ ์ํํฉ๋๋ค.
- ๋ฒ์ ๊ด๋ฆฌ: ๋ณํํ๋ ์๊ตฌ์ฌํญ์ ๋ง์ถฐ API์ ์ฌ๋ฌ ๋ฒ์ ์ ์์ฑํ๊ณ ๊ด๋ฆฌํฉ๋๋ค.
- ํ๊ธฐ: API๊ฐ ๋ ์ด์ ํ์ํ์ง ์์ ๋ ์ฌ์ฉ์ ์ค๋จํ๊ณ ์๋น์ค๋ฅผ ์ข ๋ฃํฉ๋๋ค.
1๋จ๊ณ: API ์ค๊ณ
์ค๊ณ ๋จ๊ณ๋ ์ฑ๊ณต์ ์ธ API์ ๊ธฐ๋ฐ์ ๋๋ค. ์ ์ค๊ณ๋ API๋ ์ดํดํ๊ณ , ์ฌ์ฉํ๊ณ , ์ ์ง๋ณด์ํ๊ธฐ ์ฝ์ต๋๋ค. ์ด ๋จ๊ณ์์๋ API์ ๋ฒ์๋ฅผ ์ ์ํ๊ณ , ๋์ ์ฌ์ฉ์๋ฅผ ์๋ณํ๋ฉฐ, ๋ ธ์ถํ ๋ฐ์ดํฐ์ ์ง์ํ ์์ ์ ๊ฒฐ์ ํฉ๋๋ค.
API ์ค๊ณ ์ ์ฃผ์ ๊ณ ๋ ค์ฌํญ:
- API์ ๋ชฉ์ ์ ์: API๊ฐ ํด๊ฒฐํ๋ ๋ฌธ์ ๋ ๋ฌด์์ธ๊ฐ์? ์ด๋ค ๊ธฐ๋ฅ์ ๋ ธ์ถํ๋์? ๋ช ํํ ๋ชฉ์ ์ ์ดํ์ ๋ชจ๋ ์ค๊ณ ๊ฒฐ์ ์ ์ด๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ์ ์์๊ฑฐ๋ API๋ ์ํ, ์ฃผ๋ฌธ, ๊ฒฐ์ ๊ด๋ฆฌ์ ์ค์ ์ ๋ ์ ์์ต๋๋ค.
- ๋์ ์ฌ์ฉ์ ์๋ณ: ๋๊ฐ ์ด API๋ฅผ ์ฌ์ฉํ ๊ฒ์ธ๊ฐ์? ๋์ ์ฌ์ฉ์์ ์๊ตฌ์ ๊ธฐ์ ์ ์ญ๋์ ์ดํดํ๋ฉด ๊ทธ๋ค์ด ์ฝ๊ฒ ์ฑํํ๊ณ ์ฌ์ฉํ ์ ์๋ API๋ฅผ ์ค๊ณํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ฌ์ฉ์๊ฐ ๋ด๋ถ ๊ฐ๋ฐ์์ธ์ง, ์ธ๋ถ ํํธ๋์ธ์ง, ์๋๋ฉด ์ผ๋ฐ ๋์ค์ธ์ง ๊ณ ๋ คํ์ธ์.
- API ์คํ์ผ ์ ํ: REST, GraphQL, gRPC์ ๊ฐ์ ์ ์ ํ API ์คํ์ผ์ ์ ํํ์ธ์. REST๋ ๋จ์์ฑ๊ณผ ๊ด๋ฒ์ํ ์ฑํ์ผ๋ก ์ธํด ์ธ๊ธฐ ์๋ ์ ํ์ด๋ฉฐ, GraphQL์ ๋ฐ์ดํฐ ๊ฒ์์ ๋ ๋ง์ ์ ์ฐ์ฑ๊ณผ ์ ์ด ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- API์ ๋ฆฌ์์ค ๋ฐ ์์ ์ค๊ณ: API๊ฐ ๋ ธ์ถํ ๋ฆฌ์์ค(์: ์ฌ์ฉ์, ์ํ, ์ฃผ๋ฌธ)์ ํด๋น ๋ฆฌ์์ค์์ ์ํํ ์ ์๋ ์์ (์: ์์ฑ, ์ฝ๊ธฐ, ์ ๋ฐ์ดํธ, ์ญ์ )์ ์ ์ํ์ธ์.
- ๋ฐ์ดํฐ ํ์ ์ ์: ์์ฒญ๊ณผ ์๋ต์ ์ฌ์ฉํ ๋ฐ์ดํฐ ํ์(์: JSON ๋๋ XML)์ ์ ํํ์ธ์. JSON์ ๋จ์์ฑ๊ณผ ๊ฐ๋ ์ฑ์ผ๋ก ์ธํด ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ ํ์ ๋๋ค.
- API ๋ณด์ ๊ตฌํ: ์ฒ์๋ถํฐ ๋ณด์์ ๊ณ ๋ คํ์ธ์. OAuth 2.0์ด๋ API ํค์ ๊ฐ์ ์ ์ ํ ์ธ์ฆ ๋ฐ ์ธ๊ฐ ๋ฉ์ปค๋์ฆ์ ์ ํํ์ธ์. ๋จ์ฉ์ ๋ฐฉ์งํ๊ณ ์๋น์ค ๊ฑฐ๋ถ ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธํ๊ธฐ ์ํด ์๋ ์ ํ(rate limiting)์ ๊ตฌํํ์ธ์.
- API ๋ฌธ์ํ: API ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ ๋ช ํํ๊ณ ํฌ๊ด์ ์ธ ๋ฌธ์๋ฅผ ์์ฑํ์ธ์. Swagger/OpenAPI์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์๋ฅผ ์๋์ผ๋ก ์์ฑํ์ธ์.
- ์ค๋ฅ ์ฒ๋ฆฌ: ๊ฐ๋ฐ์๊ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋๋๋ก ๋ช ํํ๊ณ ์ ์ตํ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ ์ํ์ธ์.
- ๋ฒ์ ๊ด๋ฆฌ ์ ๋ต: ํฅํ API ๋ณ๊ฒฝ ์ฌํญ์ ์ด๋ป๊ฒ ๊ด๋ฆฌํ ์ง ๊ณํํ์ธ์.
์์: ๋์๊ด ์์คํ ์ ์ํ RESTful API ์ค๊ณ
๋์๊ด ์์คํ ์ ์ํ RESTful API๋ฅผ ์๊ฐํด ๋ด ์๋ค. ์ด API๋ ๋ค์๊ณผ ๊ฐ์ ๋ฆฌ์์ค๋ฅผ ๋ ธ์ถํ ์ ์์ต๋๋ค:
- Books: ๋์๊ด ๋ชฉ๋ก์ ์๋ ์ฑ ์ ๋ํ๋ ๋๋ค.
- Authors: ์ ์๋ฅผ ๋ํ๋ ๋๋ค.
- Borrowers: ๋์๊ด ํ์์ ๋ํ๋ ๋๋ค.
์ด API๋ ๋ค์๊ณผ ๊ฐ์ ์์ ์ ์ง์ํ ์ ์์ต๋๋ค:
- GET /books: ๋ชจ๋ ์ฑ ์ ๋ชฉ๋ก์ ๊ฒ์ํฉ๋๋ค.
- GET /books/{id}: ID๋ก ํน์ ์ฑ ์ ๊ฒ์ํฉ๋๋ค.
- POST /books: ์ ์ฑ ์ ์์ฑํฉ๋๋ค.
- PUT /books/{id}: ๊ธฐ์กด ์ฑ ์ ์ ๋ฐ์ดํธํฉ๋๋ค.
- DELETE /books/{id}: ์ฑ ์ ์ญ์ ํฉ๋๋ค.
- GET /authors: ๋ชจ๋ ์ ์์ ๋ชฉ๋ก์ ๊ฒ์ํฉ๋๋ค.
- GET /authors/{id}: ID๋ก ํน์ ์ ์๋ฅผ ๊ฒ์ํฉ๋๋ค.
- GET /borrowers: ๋ชจ๋ ๋์ถ์์ ๋ชฉ๋ก์ ๊ฒ์ํฉ๋๋ค.
์ด API๋ ์์ฒญ ๋ฐ ์๋ต ๋ฐ์ดํฐ์ JSON์ ์ฌ์ฉํฉ๋๋ค. ์ธ์ฆ์ API ํค๋ OAuth 2.0์ ์ฌ์ฉํ์ฌ ๊ตฌํํ ์ ์์ต๋๋ค.
2๋จ๊ณ: API ๊ฐ๋ฐ
๊ฐ๋ฐ ๋จ๊ณ์์๋ ์ค๊ณ ๋ช ์ธ์ ๋ฐ๋ผ API๋ฅผ ๊ตฌํํฉ๋๋ค. ์ด ๋จ๊ณ๋ ์ฝ๋ ์์ฑ, ์๋ฒ ๊ตฌ์ฑ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ๋ค๋ฅธ ์์คํ ๊ณผ์ ํตํฉ์ ํฌํจํฉ๋๋ค.
API ๊ฐ๋ฐ ์ ์ฃผ์ ๊ณ ๋ ค์ฌํญ:
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ํ๋ ์์ํฌ ์ ํ: API ๊ฐ๋ฐ์ ์ ํฉํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํ๋ ์์ํฌ๋ฅผ ์ ํํ์ธ์. ์ธ๊ธฐ ์๋ ์ ํ์ง๋ก๋ Python (Django ๋๋ Flask ์ฌ์ฉ), Node.js (Express ์ฌ์ฉ), Java (Spring Boot ์ฌ์ฉ), Go ๋ฑ์ด ์์ต๋๋ค.
- API ์๋ํฌ์ธํธ ๊ตฌํ: ๊ฐ API ์๋ํฌ์ธํธ์ ๋ํ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์ฝ๋๋ฅผ ์์ฑํ์ธ์. ์ฌ๊ธฐ์๋ ์์ฒญ ๋งค๊ฐ๋ณ์ ํ์ฑ, ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฌ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ํธ ์์ฉ, ์๋ต ์์ฑ์ด ํฌํจ๋ฉ๋๋ค.
- API ๋ณด์ ๊ตฌํ: ์ค๊ณ ๋จ๊ณ์์ ์ ์๋ ์ธ์ฆ, ์ธ๊ฐ, ์๋ ์ ํ๊ณผ ๊ฐ์ ๋ณด์ ๋ฉ์ปค๋์ฆ์ ๊ตฌํํ์ธ์.
- ๋จ์ ํ ์คํธ ์์ฑ: ๊ฐ API ์๋ํฌ์ธํธ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋์ง ํ์ธํ๊ธฐ ์ํด ๋จ์ ํ ์คํธ๋ฅผ ์์ฑํ์ธ์. ๋จ์ ํ ์คํธ๋ ์ ํจํ ์ ๋ ฅ๊ณผ ์ ํจํ์ง ์์ ์ ๋ ฅ, ๊ทธ๋ฆฌ๊ณ ์ฃ์ง ์ผ์ด์ค๋ฅผ ํฌํจํ ๋ค์ํ ์๋๋ฆฌ์ค๋ฅผ ๋ค๋ค์ผ ํฉ๋๋ค.
- ๋ก๊น ๋ฐ ๋ชจ๋ํฐ๋ง ๊ตฌํ: API ์ฌ์ฉ๋์ ์ถ์ ํ๊ณ ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ธฐ ์ํด ๋ก๊น ์ ๊ตฌํํ์ธ์. ์๋ต ์๊ฐ ๋ฐ ์ค๋ฅ์จ๊ณผ ๊ฐ์ ์ฑ๋ฅ ์งํ๋ฅผ ์ถ์ ํ๊ธฐ ์ํด ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ธ์.
- API ๋ฌธ์ํ ๊ณ ๋ ค: API๊ฐ ๊ฐ๋ฐ๋จ์ ๋ฐ๋ผ ๋ฌธ์๋ฅผ ์ต์ ์ํ๋ก ์ ์งํ์ธ์.
์์: Python๊ณผ Flask๋ฅผ ์ด์ฉํ RESTful API ๊ฐ๋ฐ
๋ค์์ Flask ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ Python์ผ๋ก RESTful API ์๋ํฌ์ธํธ๋ฅผ ๊ฐ๋ฐํ๋ ๊ฐ๋จํ ์์์ ๋๋ค:
from flask import Flask, jsonify, request
app = Flask(__name__)
books = [
{"id": 1, "title": "The Hitchhiker's Guide to the Galaxy", "author": "Douglas Adams"},
{"id": 2, "title": "Nineteen Eighty-Four", "author": "George Orwell"}
]
@app.route('/books', methods=['GET'])
def get_books():
return jsonify(books)
@app.route('/books/', methods=['GET'])
def get_book(book_id):
book = next((book for book in books if book['id'] == book_id), None)
if book:
return jsonify(book)
else:
return jsonify({"message": "Book not found"}), 404
if __name__ == '__main__':
app.run(debug=True)
์ด ์ฝ๋๋ ๋ ๊ฐ์ API ์๋ํฌ์ธํธ๋ฅผ ์ ์ํฉ๋๋ค: /books (์ฑ
๋ชฉ๋ก ๊ฒ์)์ /books/{id} (ID๋ก ํน์ ์ฑ
๊ฒ์). Flask์ jsonify ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ JSON ํ์์ผ๋ก ๋ฐํํฉ๋๋ค.
3๋จ๊ณ: API ํ ์คํธ
์ฒ ์ ํ ํ ์คํธ๋ API๊ฐ ์ ํํ๊ณ , ์์ ํ๋ฉฐ, ์ ๋ขฐ์ฑ ์๊ฒ ์๋ํ๋์ง ํ์ธํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ํ ์คํธ๋ ๊ธฐ๋ฅ, ์ฑ๋ฅ, ๋ณด์, ์ฌ์ฉ์ฑ์ ํฌํจํ API์ ๋ชจ๋ ์ธก๋ฉด์ ๋ค๋ค์ผ ํฉ๋๋ค.
API ํ ์คํธ์ ์ข ๋ฅ:
- ๋จ์ ํ ์คํธ: ํจ์ ๋ฐ ํด๋์ค์ ๊ฐ์ API์ ๊ฐ๋ณ ๊ตฌ์ฑ ์์๋ฅผ ํ ์คํธํฉ๋๋ค.
- ํตํฉ ํ ์คํธ: API์ ์ฌ๋ฌ ๊ตฌ์ฑ ์์ ๊ฐ์ ์ํธ ์์ฉ์ ํ ์คํธํฉ๋๋ค.
- ๊ธฐ๋ฅ ํ ์คํธ: API์ ๊ธฐ๋ฅ์ ์ข ๋จ ๊ฐ(end-to-end)์ผ๋ก ํ ์คํธํฉ๋๋ค.
- ์ฑ๋ฅ ํ ์คํธ: ๋ค์ํ ๋ถํ ์กฐ๊ฑด์์ API์ ์ฑ๋ฅ์ ํ ์คํธํฉ๋๋ค.
- ๋ณด์ ํ ์คํธ: SQL ์ธ์ ์ ๋ฐ ํฌ๋ก์ค ์ฌ์ดํธ ์คํฌ๋ฆฝํ ๊ณผ ๊ฐ์ ๋ณด์ ์ทจ์ฝ์ ์ ๋ํด API๋ฅผ ํ ์คํธํฉ๋๋ค.
- ์ฌ์ฉ์ฑ ํ ์คํธ: ๊ฐ๋ฐ์์ ๊ด์ ์์ API์ ์ฌ์ฉ์ฑ์ ํ ์คํธํฉ๋๋ค.
API ํ ์คํธ ์ ์ฃผ์ ๊ณ ๋ ค์ฌํญ:
- ํ ์คํธ ์ผ์ด์ค ์์ฑ: API์ ๋ชจ๋ ์ธก๋ฉด์ ๋ค๋ฃจ๋ ํฌ๊ด์ ์ธ ํ ์คํธ ์ผ์ด์ค ์ธํธ๋ฅผ ๋ง๋์ธ์.
- ์๋ํ๋ ํ ์คํธ ๋๊ตฌ ์ฌ์ฉ: ์๋ํ๋ ํ ์คํธ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ๋ฅผ ์คํํ๊ณ ๋ณด๊ณ ์๋ฅผ ์์ฑํ์ธ์. ์ธ๊ธฐ ์๋ API ํ ์คํธ ๋๊ตฌ๋ก๋ Postman, SoapUI, JMeter ๋ฑ์ด ์์ต๋๋ค.
- ์ค์ ๋ฐ์ดํฐ๋ก ํ ์คํธ: API๊ฐ ์ค์ ์๋๋ฆฌ์ค๋ฅผ ์ฒ๋ฆฌํ ์ ์๋์ง ํ์ธํ๊ธฐ ์ํด ํ ์คํธ์ ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ธ์.
- ์ฃ์ง ์ผ์ด์ค ํ ์คํธ: ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ค์๋ ๋ํ๋์ง ์์ ์ ์๋ ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ธฐ ์ํด ์ฃ์ง ์ผ์ด์ค๋ฅผ ํ ์คํธํ์ธ์.
- ๋ณด์ ํ ์คํธ ์ํ: ๋ณด์ ์ทจ์ฝ์ ์ ์๋ณํ๊ณ ํด๊ฒฐํ๊ธฐ ์ํด ์ฒ ์ ํ ๋ณด์ ํ ์คํธ๋ฅผ ์ํํ์ธ์.
์์: API ํ ์คํธ๋ฅผ ์ํ Postman ์ฌ์ฉ
Postman์ API ํ ์คํธ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋๊ตฌ์ ๋๋ค. ์ด๋ฅผ ํตํด API ์๋ํฌ์ธํธ์ HTTP ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ต์ ๊ฒ์ฌํ ์ ์์ต๋๋ค. Postman์ ์ฌ์ฉํ์ฌ ํ ์คํธ ์ผ์ด์ค๋ฅผ ๋ง๋ค๊ณ , ํ ์คํธ๋ฅผ ์คํํ๊ณ , ๋ณด๊ณ ์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋์๊ด API์ /books ์๋ํฌ์ธํธ๋ฅผ ํ
์คํธํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค:
- Postman์ ์ฝ๋๋ค.
- URL ํ๋์ API ์๋ํฌ์ธํธ URL(์:
http://localhost:5000/books)์ ์ ๋ ฅํฉ๋๋ค. - HTTP ๋ฉ์๋(์: GET)๋ฅผ ์ ํํฉ๋๋ค.
- "Send" ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
- ์๋ต์ด ์ฌ๋ฐ๋ฅธ์ง ํ์ธํ๊ธฐ ์ํด ์๋ต์ ๊ฒ์ฌํฉ๋๋ค.
4๋จ๊ณ: API ๋ฐฐํฌ
๋ฐฐํฌ ๋จ๊ณ์์๋ ๊ฐ๋ฐ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ์ฉํ ์ ์๋๋ก API๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ์ํด์๋ ์๋ฒ ์ค์ , ๋คํธ์ํน ๊ตฌ์ฑ, API ์ฝ๋ ๋ฐฐํฌ๊ฐ ํ์ํฉ๋๋ค.
๋ฐฐํฌ ์ต์ :
- ์จํ๋ ๋ฏธ์ค(On-premise): ์์ฒด ์๋ฒ์ API๋ฅผ ๋ฐฐํฌํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ธํ๋ผ์ ๋ํ ์์ ํ ์ ์ด๊ฐ ๊ฐ๋ฅํ์ง๋ง ์๋ฒ์ ๋คํธ์ํน์ ์ง์ ๊ด๋ฆฌํด์ผ ํฉ๋๋ค.
- ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ: Amazon Web Services(AWS), Google Cloud Platform(GCP) ๋๋ Microsoft Azure์ ๊ฐ์ ํด๋ผ์ฐ๋ ํ๋ซํผ์ API๋ฅผ ๋ฐฐํฌํฉ๋๋ค. ์ด๋ ํ์ฅ์ฑ, ์ ๋ขฐ์ฑ, ๊ด๋ฆฌ์ ์ฉ์ด์ฑ์ ์ ๊ณตํฉ๋๋ค.
- ํ์ด๋ธ๋ฆฌ๋: API์ ์ผ๋ถ ๊ตฌ์ฑ ์์๋ ์จํ๋ ๋ฏธ์ค์, ๋ค๋ฅธ ์ผ๋ถ๋ ํด๋ผ์ฐ๋์ ๋ฐฐํฌํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ ์ด์ ํ์ฅ์ฑ์ ๊ท ํ์ ๋ง์ถ ์ ์์ต๋๋ค.
API ๋ฐฐํฌ ์ ์ฃผ์ ๊ณ ๋ ค์ฌํญ:
- ๋ฐฐํฌ ํ๊ฒฝ ์ ํ: ํ์ฅ์ฑ, ์ ๋ขฐ์ฑ, ๋ณด์์ ๋ํ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ๋ฐฐํฌ ํ๊ฒฝ์ ์ ํํ์ธ์.
- ์๋ฒ ๋ฐ ๋คํธ์ํน ๊ตฌ์ฑ: API๋ฅผ ์ง์ํ๋๋ก ์๋ฒ์ ๋คํธ์ํน์ ๊ตฌ์ฑํ์ธ์. ์ฌ๊ธฐ์๋ ๋ก๋ ๋ฐธ๋ฐ์, ๋ฐฉํ๋ฒฝ, DNS ๋ ์ฝ๋ ์ค์ ์ด ํฌํจ๋ฉ๋๋ค.
- API ์ฝ๋ ๋ฐฐํฌ: API ์ฝ๋๋ฅผ ์๋ฒ์ ๋ฐฐํฌํ์ธ์. ์ด ๊ณผ์ ์์ CI/CD(์ง์์ ํตํฉ ๋ฐ ์ง์์ ์ ๋ฌ) ํ์ดํ๋ผ์ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- API ๋ชจ๋ํฐ๋ง: API๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์คํ๋๊ณ ์๋์ง, ์ฑ๋ฅ์ด ์ข์์ง ๋ชจ๋ํฐ๋งํ์ธ์.
์์: Docker์ ECS๋ฅผ ์ฌ์ฉํ์ฌ AWS์ API ๋ฐฐํฌ
Docker๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์ด๋ํํ๋ ๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋๊ตฌ์ ๋๋ค. ECS(Elastic Container Service)๋ AWS์์ ์ ๊ณตํ๋ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ์๋น์ค์ ๋๋ค. Docker์ ECS๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฅ ๊ฐ๋ฅํ๊ณ ์ ๋ขฐํ ์ ์๋ ๋ฐฉ์์ผ๋ก AWS์ API๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
Docker์ ECS๋ฅผ ์ฌ์ฉํ์ฌ AWS์ API๋ฅผ ๋ฐฐํฌํ๋ ๋จ๊ณ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- API์ Docker ์ด๋ฏธ์ง๋ฅผ ์์ฑํฉ๋๋ค.
- Docker Hub๋ AWS Elastic Container Registry(ECR)์ ๊ฐ์ ์ปจํ ์ด๋ ๋ ์ง์คํธ๋ฆฌ์ Docker ์ด๋ฏธ์ง๋ฅผ ํธ์ํฉ๋๋ค.
- ECS ํด๋ฌ์คํฐ๋ฅผ ์์ฑํฉ๋๋ค.
- ์คํํ Docker ์ด๋ฏธ์ง, ํ ๋นํ ๋ฆฌ์์ค, ๋คํธ์ํฌ ๊ตฌ์ฑ์ ์ง์ ํ๋ ECS ์์ ์ ์๋ฅผ ์ ์ํฉ๋๋ค.
- ECS ํด๋ฌ์คํฐ์์ ์์ ์ ์๋ฅผ ์คํํ๋ ECS ์๋น์ค๋ฅผ ์์ฑํฉ๋๋ค.
- ECS ์๋น์ค๋ก ํธ๋ํฝ์ ๋ถ์ฐ์ํค๋๋ก ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
5๋จ๊ณ: API ๊ด๋ฆฌ
API ๊ด๋ฆฌ๋ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง, ์ ๊ทผ ๊ด๋ฆฌ, ๋ณด์ ์ ์ฑ ์ํ, ๊ฐ๋ฐ์ ์ง์ ์ ๊ณต์ ํฌํจํฉ๋๋ค. ๊ฒฌ๊ณ ํ API ๊ด๋ฆฌ ํ๋ซํผ์ API์ ์ฅ๊ธฐ์ ์ธ ์ฑ๊ณต์ ํ์์ ์ ๋๋ค.
API ๊ด๋ฆฌ์ ์ฃผ์ ๊ตฌ์ฑ ์์:
- API ๊ฒ์ดํธ์จ์ด: API ๊ฒ์ดํธ์จ์ด๋ ๋ชจ๋ API ์์ฒญ์ ๋ํ ์ค์ ์ง์ ์ ์ญํ ์ ํฉ๋๋ค. ์ธ์ฆ, ์ธ๊ฐ, ์๋ ์ ํ ๋ฐ ๊ธฐํ ๋ณด์ ์ ์ฑ ์ ์ฒ๋ฆฌํฉ๋๋ค.
- ๊ฐ๋ฐ์ ํฌํธ: ๊ฐ๋ฐ์ ํฌํธ์ API๋ฅผ ์ฌ์ฉํ๋ ค๋ ๊ฐ๋ฐ์๋ฅผ ์ํด ๋ฌธ์, ํํ ๋ฆฌ์ผ ๋ฐ ๊ธฐํ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๋ถ์ ๋ฐ ๋ชจ๋ํฐ๋ง: ๋ถ์ ๋ฐ ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ API ์ฌ์ฉ๋, ์ฑ๋ฅ, ์ค๋ฅ๋ฅผ ์ถ์ ํฉ๋๋ค. ์ด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ API๋ฅผ ๊ฐ์ ํ ์ ์์ต๋๋ค.
- ๋ณด์ ์ ์ฑ : ๋ณด์ ์ ์ฑ ์ API๋ฅผ ๋ฌด๋จ ์ ๊ทผ ๋ฐ ๋จ์ฉ์ผ๋ก๋ถํฐ ๋ณดํธํ๋ ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค.
- ์๋ ์ ํ: ์๋ ์ ํ์ ํด๋ผ์ด์ธํธ๊ฐ ์ฃผ์ด์ง ์๊ฐ ๋ด์ ํ ์ ์๋ ์์ฒญ ์๋ฅผ ์ ํํ์ฌ ๋จ์ฉ์ ๋ฐฉ์งํฉ๋๋ค.
- ์ธ์ฆ ๋ฐ ์ธ๊ฐ: ์ธ์ฆ์ ํด๋ผ์ด์ธํธ์ ์ ์์ ํ์ธํ๋ ๋ฐ๋ฉด, ์ธ๊ฐ๋ ํด๋ผ์ด์ธํธ๊ฐ ์ ๊ทผํ ์ ์๋ ๋ฆฌ์์ค๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
์์: Kong๊ณผ ๊ฐ์ API ๊ฒ์ดํธ์จ์ด ์ฌ์ฉ
Kong์ ์ธ๊ธฐ ์๋ ์คํ์์ค API ๊ฒ์ดํธ์จ์ด์ ๋๋ค. ์ธ์ฆ, ์ธ๊ฐ, ์๋ ์ ํ, ํธ๋ํฝ ๊ด๋ฆฌ์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
Kong์ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค:
- Kong์ ์ค์นํฉ๋๋ค.
- API๋ก ์์ฒญ์ ํ๋ก์ํ๋๋ก Kong์ ๊ตฌ์ฑํฉ๋๋ค.
- ๋ณด์ ์ ์ฑ , ์๋ ์ ํ ๋ฐ ๊ธฐํ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด ํ๋ฌ๊ทธ์ธ์ ๊ตฌ์ฑํฉ๋๋ค.
6๋จ๊ณ: API ๋ฒ์ ๊ด๋ฆฌ
API๊ฐ ๋ฐ์ ํจ์ ๋ฐ๋ผ ์๋ก์ด ๊ธฐ๋ฅ์ ๋์ ํ๊ฑฐ๋, ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ฑฐ๋, ๊ธฐ์กด ๊ธฐ๋ฅ์ ๋ณ๊ฒฝํด์ผ ํ ํ์๊ฐ ์ข ์ข ์์ต๋๋ค. API ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํตํด ๊ธฐ์กด ํด๋ผ์ด์ธํธ๋ฅผ ์์์ํค์ง ์๊ณ ์ด๋ฌํ ๋ณ๊ฒฝ์ ์ํํ ์ ์์ต๋๋ค. API์ ๊ฐ ๋ฒ์ ์ ๋ณ๋์ ์ ํ์ผ๋ก ์ทจ๊ธ๋์ด์ผ ํฉ๋๋ค.
๋ฒ์ ๊ด๋ฆฌ ์ ๋ต:
- URI ๋ฒ์ ๊ด๋ฆฌ: API์ URI์ ๋ฒ์ ๋ฒํธ๋ฅผ ํฌํจํฉ๋๋ค (์:
/v1/books,/v2/books). ์ด๊ฒ์ ์ผ๋ฐ์ ์ด๊ณ ๊ฐ๋จํ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค. - ํค๋ ๋ฒ์ ๊ด๋ฆฌ: ์ฌ์ฉ์ ์ง์ HTTP ํค๋์ ๋ฒ์ ๋ฒํธ๋ฅผ ํฌํจํฉ๋๋ค (์:
X-API-Version: 1). - ์ฝํ
์ธ ํ์:
Acceptํค๋๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ API ๋ฒ์ ์ ์ง์ ํฉ๋๋ค.
API ๋ฒ์ ๊ด๋ฆฌ ์ ์ฃผ์ ๊ณ ๋ ค์ฌํญ:
- ๋ฒ์ ๊ด๋ฆฌ ์ ๋ต ์ ํ: API์ ์ ํฉํ ๋ฒ์ ๊ด๋ฆฌ ์ ๋ต์ ์ ํํ์ธ์.
- ํ์ ํธํ์ฑ ์ ์ง: ๊ฐ๋ฅํ ํ ํ์ ํธํ์ฑ์ ์ ์งํ๊ธฐ ์ํด ๋ ธ๋ ฅํ์ธ์.
- ์ด์ ๋ฒ์ ์ง์ ์ค๋จ: ๋ ์ด์ ํ์ํ์ง ์์ ์ด์ ๋ฒ์ ์ API๋ ์ง์์ ์ค๋จ(deprecate)ํ์ธ์.
- ๋ณ๊ฒฝ ์ฌํญ ์ ๋ฌ: API ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ๋ฐ์์๊ฒ ์๊ธฐ์ ์ ํ๊ฒ ์ ๋ฌํ์ธ์.
์์: URI ๋ฒ์ ๊ด๋ฆฌ
URI ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์๋ํฌ์ธํธ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค:
/v1/books(books API ๋ฒ์ 1)/v2/books(books API ๋ฒ์ 2)
7๋จ๊ณ: API ํ๊ธฐ
๊ฒฐ๊ตญ API๋ ์ธ๋ชจ์๊ฒ ๋๊ฑฐ๋ ์ต์ ๋ฒ์ ์ผ๋ก ๋์ฒด๋ ์ ์์ต๋๋ค. ํ๊ธฐ ๋จ๊ณ๋ API์ ์ฌ์ฉ์ ์ค๋จํ๊ณ ์๋น์ค๋ฅผ ์ข ๋ฃํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด๋ ๊ธฐ์กด ํด๋ผ์ด์ธํธ์ ๋ํ ์ค๋จ์ ์ต์ํํ๊ธฐ ์ํด ์ ์คํ๊ฒ ์ํ๋์ด์ผ ํฉ๋๋ค.
API ํ๊ธฐ ์ ์ฃผ์ ๊ณ ๋ ค์ฌํญ:
- ์ง์ ์ค๋จ ๋ฐํ: API๋ฅผ ํ๊ธฐํ๊ธฐ ํจ์ฌ ์ ์ ์ง์ ์ค๋จ์ ๋ฐํํ์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ๊ฐ๋ฐ์๊ฐ ์ ๋ฒ์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ์๊ฐ์ ๊ฐ์ง ์ ์์ต๋๋ค.
- ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก ์ ๊ณต: ์ด์ API๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์๋ฅผ ์ํด ๋ช ํํ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํ์ธ์. ์ฌ๊ธฐ์๋ ๋ฌธ์, ์ํ ์ฝ๋ ๋๋ ๋ง์ด๊ทธ๋ ์ด์ ๋๊ตฌ ์ ๊ณต์ด ํฌํจ๋ ์ ์์ต๋๋ค.
- ์ฌ์ฉ๋ ๋ชจ๋ํฐ๋ง: ์์ง ๋ง์ด๊ทธ๋ ์ด์ ํ์ง ์์ ํด๋ผ์ด์ธํธ๋ฅผ ์๋ณํ๊ธฐ ์ํด ์ด์ API์ ์ฌ์ฉ๋์ ๋ชจ๋ํฐ๋งํ์ธ์.
- API ์๋น์ค ์ข ๋ฃ: ๋ชจ๋ ํด๋ผ์ด์ธํธ๊ฐ ๋ง์ด๊ทธ๋ ์ด์ ๋๋ฉด API ์๋น์ค๋ฅผ ์ข ๋ฃํ์ธ์. ์ฌ๊ธฐ์๋ ์๋ฒ์์ API ์ฝ๋๋ฅผ ์ ๊ฑฐํ๊ณ ๊ด๋ จ ๋ฌธ์๋ฅผ ์ ๋ฐ์ดํธํ๋ ์์ ์ด ํฌํจ๋ฉ๋๋ค.
์์: API ์ง์ ์ค๋จ
API ์ง์์ ์ค๋จํ๋ ค๋ฉด ๋ค์์ ์ํํ ์ ์์ต๋๋ค:
- API ๋ฌธ์์ ๊ฐ๋ฐ์ ํฌํธ์ ์ง์ ์ค๋จ์ ๊ณต์งํฉ๋๋ค.
- API ์๋ต์ ์ง์ ์ค๋จ ๊ฒฝ๊ณ ๋ฅผ ํฌํจํฉ๋๋ค.
- API๋ฅผ ๋ ์ด์ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ ์ข ๋ฃ ๋ ์ง(sunset date)๋ฅผ ์ค์ ํฉ๋๋ค.
- ๊ฐ๋ฐ์๊ฐ ์ ๋ฒ์ ์ API๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๋ฐ ๋์์ด ๋๋ ๋ง์ด๊ทธ๋ ์ด์ ๊ฐ์ด๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
API ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
๋ค์์ API ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ช ๊ฐ์ง ๋ชจ๋ฒ ์ฌ๋ก์ ๋๋ค:
- ๋ช ํํ ์ค๊ณ๋ก ์์: ์ ์ค๊ณ๋ API๋ ๊ฐ๋ฐ, ํ ์คํธ, ๋ฐฐํฌ, ์ ์ง๋ณด์๊ฐ ๋ ์ฝ์ต๋๋ค.
- ํ ์คํธ ์๋ํ: API๊ฐ ์ ํํ๊ณ ์ ๋ขฐ์ฑ ์๊ฒ ์๋ํ๋๋ก ํ ์คํธ๋ฅผ ์๋ํํ์ธ์.
- CI/CD ํ์ดํ๋ผ์ธ ์ฌ์ฉ: CI/CD ํ์ดํ๋ผ์ธ์ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ์ธ์.
- API ๋ชจ๋ํฐ๋ง: ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ์ฑ๋ฅ์ ๊ฐ์ ํ๊ธฐ ์ํด API๋ฅผ ๋ชจ๋ํฐ๋งํ์ธ์.
- API ๊ด๋ฆฌ ํ๋ซํผ ์ฌ์ฉ: API ๊ด๋ฆฌ ํ๋ซํผ์ ์ฌ์ฉํ์ฌ ์ ๊ทผ์ ๊ด๋ฆฌํ๊ณ , ๋ณด์ ์ ์ฑ ์ ์ํํ๋ฉฐ, ๊ฐ๋ฐ์ ์ง์์ ์ ๊ณตํ์ธ์.
- API ๋ฒ์ ๊ด๋ฆฌ: ๊ธฐ์กด ํด๋ผ์ด์ธํธ๋ฅผ ์์์ํค์ง ์๊ณ ๋ณ๊ฒฝํ ์ ์๋๋ก API ๋ฒ์ ์ ๊ด๋ฆฌํ์ธ์.
- ์ด์ ๋ฒ์ ์ง์ ์ค๋จ: ๋ ์ด์ ํ์ํ์ง ์์ ์ด์ ๋ฒ์ ์ API๋ ์ง์์ ์ค๋จํ์ธ์.
- ๋ณ๊ฒฝ ์ฌํญ ์ ๋ฌ: API ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ๋ฐ์์๊ฒ ์๊ธฐ์ ์ ํ๊ฒ ์ ๋ฌํ์ธ์.
- API ๊ฑฐ๋ฒ๋์ค ์์ฉ: ์กฐ์ง ๋ด ๋ชจ๋ API์ ๋ํ ํ์ค๊ณผ ๊ฐ์ด๋๋ผ์ธ์ ์ ์ํ๋ API ๊ฑฐ๋ฒ๋์ค ์ ์ฑ ์ ๊ตฌํํ์ธ์. ์ด๋ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๊ณ ์ฌ์ฌ์ฉ์ฑ์ ์ด์งํฉ๋๋ค.
- '์ค๊ณ ์ฐ์ ' ์ ๊ทผ ๋ฐฉ์ ์ฑํ: ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ ์ OpenAPI(Swagger)์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ API๋ฅผ ๋ฏธ๋ฆฌ ์ค๊ณํ์ธ์. ์ด๋ ๋ ๋์ ํ์ ์ ๊ฐ๋ฅํ๊ฒ ํ๊ณ ๋์ค์ ๋ฐ์ํ ์ ์๋ ๋น์ฉ์ด ๋ง์ด ๋๋ ์ฌ์์ ์ ์ํ์ ์ค์ ๋๋ค.
๊ฒฐ๋ก
API ์๋ช ์ฃผ๊ธฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ ์ฑ๊ณต์ ์ธ API๋ฅผ ๊ตฌ์ถํ๊ณ ์ ์งํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ด ๊ฐ์ด๋์ ์ค๋ช ๋ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๋ฉด API๊ฐ ๋น์ฆ๋์ค ์๊ตฌ๋ฅผ ์ถฉ์กฑํ๊ณ , ์ ๊ณ ํ์ค์ ์ค์ํ๋ฉฐ, ์ ์ฒด ์๋ช ์ฃผ๊ธฐ ๋์ ์์ ํ๊ณ ๋์ ์ฑ๋ฅ์ ์ ์งํ๋๋ก ํ ์ ์์ต๋๋ค. ์ด๊ธฐ ์ค๊ณ๋ถํฐ ์ต์ข ํ๊ธฐ๊น์ง, ์ ๊ด๋ฆฌ๋ API ์๋ช ์ฃผ๊ธฐ๋ ํ์ ์ ์ฃผ๋ํ๊ณ ๋น์ฆ๋์ค ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๋ ๋ฐ ํ์์ ์ ๋๋ค.